<?php 
	/**
	* Auto-généré classe Utilisateur
	*/

	class Utilisateur extends \Core\ORM\Modele {
		/**
		* @var string $login_utilisateur
		*/
		protected $login_utilisateur;
		/**
		* @var string $mdp_utilisateur
		*/
		protected $mdp_utilisateur;
		/**
		* @var \DateTime $derniere_connexion
		*/
		protected $derniere_connexion;
		/**
		* @var string $nom_utilisateur
		*/
		protected $nom_utilisateur;
		/**
		* @var string $prenom_utilisateur
		*/
		protected $prenom_utilisateur;
		/**
		* @var string $courriel_utilisateur
		*/
		protected $courriel_utilisateur;
		/**
		* @var boolean $activite_utilisateur
		*/
		protected $activite_utilisateur;
		/**
		* @var \Core\ORM\Profil $profil
		*/
		protected $profil;

        /**
        * @var string $salt Permet de saler les mots de passes des utilisateurs
        */
        public static $salt = "dJ2GxSuO7giMAPL5KHyZf64o4BxDPy";
        
		/**
		* Constructeur complet
		*
		* @var int $id
		* @var string $login_utilisateur
		* @var string $mdp_utilisateur
		* @var \DateTime $derniere_connexion
		* @var string $nom_utilisateur
		* @var string $prenom_utilisateur
		* @var string $courriel_utilisateur
		* @var boolean $activite_utilisateur
		* @var \Core\ORM\Profil $profil
		*
		* @return void
		*/
		public function __construct($id, $login_utilisateur, $mdp_utilisateur, $derniere_connexion, $nom_utilisateur, $prenom_utilisateur, $courriel_utilisateur, $activite_utilisateur, $profil) {
			parent::__construct($id);
			$this->setLoginUtilisateur($login_utilisateur);
			$this->setMdpUtilisateur($mdp_utilisateur);
			$this->setDerniereConnexion($derniere_connexion);
			$this->setNomUtilisateur($nom_utilisateur);
			$this->setPrenomUtilisateur($prenom_utilisateur);
			$this->setCourrielUtilisateur($courriel_utilisateur);
			$this->setActiviteUtilisateur($activite_utilisateur);
			$this->setProfil($profil);
		}

        /**
        * Sale le mot de passe passé en paramètre avec le salt des utilisateurs
        * 
        * @param string $mdp
        * 
        * @return string
        */
        public static function saleMotDePasse($mdp) {
            return \Utils\Outils::encrypt($mdp.self::$salt);
        }
        
		//GETTERS ET SETTERS
		/**
		* Getter de l'attribut login_utilisateur
		*
		* @return string
		*/
		public function getLoginUtilisateur() {
			return $this->login_utilisateur;
		}
		/**
		* Setter de l'attribut login_utilisateur
		*
		* @param string $login_utilisateur		*
		* @return void
		*/
		public function setLoginUtilisateur($login_utilisateur) {
			$this->login_utilisateur=$login_utilisateur;
		}
		/**
		* Getter de l'attribut mdp_utilisateur
		*
		* @return string
		*/
		public function getMdpUtilisateur() {
			return $this->mdp_utilisateur;
		}
		/**
		* Setter de l'attribut mdp_utilisateur
		*
		* @param string $mdp_utilisateur		*
		* @return void
		*/
		public function setMdpUtilisateur($mdp_utilisateur) {
			$this->mdp_utilisateur=$mdp_utilisateur;
		}
		/**
		* Getter de l'attribut derniere_connexion
		*
		* @return \DateTime
		*/
		public function getDerniereConnexion($format="Y-m-d H:i:s") {
			return \Utils\Outils::getterDate($this->derniere_connexion, $format);
		}
		/**
		* Setter de l'attribut derniere_connexion
		*
		* @return void
		*/
		public function setDerniereConnexion($derniere_connexion) {
			$this->derniere_connexion=\Utils\Outils::setterDate($derniere_connexion);
		}
		/**
		* Getter de l'attribut nom_utilisateur
		*
		* @return string
		*/
		public function getNomUtilisateur() {
			return $this->nom_utilisateur;
		}
		/**
		* Setter de l'attribut nom_utilisateur
		*
		* @param string $nom_utilisateur		*
		* @return void
		*/
		public function setNomUtilisateur($nom_utilisateur) {
			$this->nom_utilisateur=$nom_utilisateur;
		}
		/**
		* Getter de l'attribut prenom_utilisateur
		*
		* @return string
		*/
		public function getPrenomUtilisateur() {
			return $this->prenom_utilisateur;
		}
		/**
		* Setter de l'attribut prenom_utilisateur
		*
		* @param string $prenom_utilisateur		*
		* @return void
		*/
		public function setPrenomUtilisateur($prenom_utilisateur) {
			$this->prenom_utilisateur=$prenom_utilisateur;
		}
		/**
		* Getter de l'attribut courriel_utilisateur
		*
		* @return string
		*/
		public function getCourrielUtilisateur() {
			return $this->courriel_utilisateur;
		}
		/**
		* Setter de l'attribut courriel_utilisateur
		*
		* @param string $courriel_utilisateur		*
		* @return void
		*/
		public function setCourrielUtilisateur($courriel_utilisateur) {
			$this->courriel_utilisateur=$courriel_utilisateur;
		}
		/**
		* Getter de l'attribut activite_utilisateur
		*
		* @return boolean
		*/
		public function getActiviteUtilisateur() {
			return $this->activite_utilisateur;
		}
		/**
		* Setter de l'attribut activite_utilisateur
		*
		* @return void
		*/
		public function setActiviteUtilisateur($activite_utilisateur) {
			$this->activite_utilisateur=(boolean)intval($activite_utilisateur);
		}
		/**
		* Getter de l'attribut profil
		*
		* @return \Core\ORM\Profil
		*/
		public function getProfil() {
			return $this->profil;
		}
		/**
		* Setter de l'attribut profil
		*
		* @param \Core\ORM\Profil $profil		*
		* @return void
		*/
		public function setProfil($profil) {
			$this->profil=$profil;
		}
		public static function getAttributs() {
			return array(
							new Core\ORM\Attributs\String("login_utilisateur", false, 40, false),
							new Core\ORM\Attributs\String("mdp_utilisateur", false, 128, false),
							new Core\ORM\Attributs\DateTime("derniere_connexion", false, "Y-m-d H:i:s", "datetime"),
							new Core\ORM\Attributs\String("nom_utilisateur", false, 40, false),
							new Core\ORM\Attributs\String("prenom_utilisateur", false, 40, false),
							new Core\ORM\Attributs\String("courriel_utilisateur", false, 255, false),
							new Core\ORM\Attributs\Booleen("activite_utilisateur", false, 1, false),
							new Core\ORM\Attributs\Objet("Profil", "profil_id", false, "11")
						);
		}

		public static function getTable() {
			return "utilisateur";
		}
	}
?>